#define  _CRT_SECURE_NO_WARNINGS
// class Solution {
// public:
//     vector<int> diStringMatch(string s) {
//         int n = s.size();
//         int l = 0, r = n;
//         vector<int> ret(n + 1);
//         ret[0] = s[0] == 'I' ? l++ : r--;
//         for(int i = 0; i < n - 1; i++)
//         {
//             // if(s[i] == 'I')
//             {
//                 if(s[i + 1] == 'I')
//                     ret[i + 1] = l++;
//                 else
//                     ret[i + 1] = r--;
//             }
//             // else
//             {
//                 // if(s[i + 1] == 'I')
//             }
//         }
//         ret[n] = l;
//         return ret;
//     }
// };
// //  idid
// // 04132
// //  iiii
// // 01234
// //  ddii
// // 43012
class Solution {
public:
    vector<int> diStringMatch(string s) {
        int size = s.size();
        vector<int> ret;
        int l = 0, r = size;
        for (auto e : s) ret.push_back(e == 'I' ? l++ : r--);
        ret.push_back(l);
        return ret;
    }
};